package structs

import (
	"gitee.com/chunanyong/zorm"
	"time"
)

//TbArticleStructTableName 表名常量,方便直接调用
const TbArticleStructTableName = "tb_article"

// TbArticleStruct 
type TbArticleStruct struct {
	//引入默认的struct,隔离IEntityStruct的方法改动
	zorm.EntityStruct

	//Id []
	Id int `column:"id"`

	//UserId 作者
	UserId int `column:"user_id"`

	//CategoryId 文章分类
	CategoryId int `column:"category_id"`

	//ArticleCover 文章缩略图
	ArticleCover string `column:"article_cover"`

	//ArticleTitle 标题
	ArticleTitle string `column:"article_title"`

	//ArticleContent 内容
	ArticleContent string `column:"article_content"`

	//Type 文章类型 1原创 2转载 3翻译
	Type int8 `column:"type"`

	//OriginalUrl 原文链接
	OriginalUrl string `column:"original_url"`

	//IsTop 是否置顶 0否 1是
	IsTop int8 `column:"is_top"`

	//IsDelete 是否删除  0否 1是
	IsDelete int8 `column:"is_delete"`

	//Status 状态值 1公开 2私密 3评论可见
	Status int8 `column:"status"`

	//Sortno 自定义排序
	Sortno int `column:"sortno"`

	//CreateTime 发表时间
	CreateTime time.Time `column:"create_time"`

	//UpdateTime 更新时间
	UpdateTime time.Time `column:"update_time"`

	//------------------数据库字段结束,自定义字段写在下面---------------//
	//如果查询的字段在column tag中没有找到,就会根据名称(不区分大小写,支持 _ 转驼峰)映射到struct的属性上
}

//GetTableName 获取表名称
//IEntityStruct 接口的方法,实体类需要实现!!!
func (entity *TbArticleStruct) GetTableName() string {
	return TbArticleStructTableName
}

//GetPKColumnName 获取数据库表的主键字段名称.因为要兼容Map,只能是数据库的字段名称
//不支持联合主键,变通认为无主键,业务控制实现(艰难取舍)
//如果没有主键,也需要实现这个方法, return "" 即可
//IEntityStruct 接口的方法,实体类需要实现!!!
func (entity *TbArticleStruct) GetPKColumnName() string {
	//如果没有主键
	//return ""
	return "id"
}
